Implement equal for GtkCssImageUrl
authorMatthias Clasen <mclasen@redhat.com>
Fri, 5 Jan 2018 22:15:44 +0000 (17:15 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 5 Jan 2018 22:15:44 +0000 (17:15 -0500)
This should in theory speed some things up if the same
image is used in multiple places.

gtk/gtkcssimageurl.c

index 21981e85e30a3d79c6ba9916da06323b666ea54a..ee6323f1d486932c8147301494f6a15d19a39d21 100644 (file)
@@ -135,6 +135,16 @@ gtk_css_image_url_compute (GtkCssImage      *image,
   return g_object_ref (copy);
 }
 
+static gboolean
+gtk_css_image_url_equal (GtkCssImage *image1,
+                         GtkCssImage *image2)
+{
+  GtkCssImageUrl *url1 = GTK_CSS_IMAGE_URL (image1);
+  GtkCssImageUrl *url2 = GTK_CSS_IMAGE_URL (image2);
+
+  return g_file_equal (url1->file, url2->file);
+}
+
 static gboolean
 gtk_css_image_url_parse (GtkCssImage  *image,
                          GtkCssParser *parser)
@@ -181,6 +191,7 @@ _gtk_css_image_url_class_init (GtkCssImageUrlClass *klass)
   image_class->snapshot = gtk_css_image_url_snapshot;
   image_class->parse = gtk_css_image_url_parse;
   image_class->print = gtk_css_image_url_print;
+  image_class->equal = gtk_css_image_url_equal;
 
   object_class->dispose = gtk_css_image_url_dispose;
 }